<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const obj = {
            uname:'pink',
            age: 18,
            hobby:['乒乓球','篮球'],
            family:{
                baby:'老pink'
            }
        }
        const o ={

        }
        //拷贝函数
        function deepCopy(newObj,oldObj){
            for(let k in oldObj){
                //处理数组的问题 一定先些数组 再写对象 不能颠倒
                if(oldObj[k] instanceof Array){
                    newObj[k] = []
                    deepCopy(newObj[k],oldObj[k])
                }else if(oldObj[k] instanceof Object){
                    newObj[k] = {}
                    deepCopy(newObj[k],oldObj[k])
                }
                else{
                    // k 是属性名  oldObj[k] 是属性值
                    // newObj[k] === o.uname
                    newObj[k] = oldObj[k]
                }

            }
        }
        deepCopy(o,obj) //函数调用 两个参数 o 新对象 obj 旧对象
        console.log(o)
        o.age = 20
        o.hobby[1] = '足球'
        o.family.baby = '小pink'
        console.log(obj)
    </script>

</body>
</html>